﻿<?xml version="1.0" encoding="utf-8"?>

<opcodes>
    <opcode name="Add">
        <documentation>
            Adds two values and pushes the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Add_Ovf">
        <documentation>
            Adds two integers, performs an overflow check, and pushes the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Add_Ovf_Un">
        <documentation>
            Adds two unsigned integer values, performs an overflow check, and pushes the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="And">
        <documentation>
            Computes the bitwise AND of two values and pushes the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Arglist">
        <documentation>
            Returns an unmanaged pointer to the argument list of the current method.
        </documentation>
    </opcode>
    <opcode name="Beq">
        <documentation>
            Transfers control to a target instruction if two values are equal.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Beq_S">
        <documentation>
            Transfers control to a target instruction (short form) if two values are equal.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Bge">
        <documentation>
            Transfers control to a target instruction if the first value is greater than or equal to the second value.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Bge_S">
        <documentation>
            Transfers control to a target instruction (short form) if the first value is greater than or equal to the second value.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Bge_Un">
        <documentation>
            Transfers control to a target instruction if the first value is greater than the second value, when comparing unsigned integer values or unordered float values.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Bge_Un_S">
        <documentation>
            Transfers control to a target instruction (short form) if the first value is greater than the second value, when comparing unsigned integer values or unordered float values.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Bgt">
        <documentation>
            Transfers control to a target instruction if the first value is greater than the second value.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Bgt_S">
        <documentation>
            Transfers control to a target instruction (short form) if the first value is greater than the second value.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Bgt_Un">
        <documentation>
            Transfers control to a target instruction if the first value is greater than the second value, when comparing unsigned integer values or unordered float values.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Bgt_Un_S">
        <documentation>
            Transfers control to a target instruction (short form) if the first value is greater than the second value, when comparing unsigned integer values or unordered float values.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Ble">
        <documentation>
            Transfers control to a target instruction if the first value is less than or equal to the second value.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Ble_S">
        <documentation>
            Transfers control to a target instruction (short form) if the first value is less than or equal to the second value.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Ble_Un">
        <documentation>
            Transfers control to a target instruction if the first value is less than or equal to the second value, when comparing unsigned integer values or unordered float values.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Ble_Un_S">
        <documentation>
            Transfers control to a target instruction (short form) if the first value is less than or equal to the second value, when comparing unsigned integer values or unordered float values.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Blt">
        <documentation>
            Transfers control to a target instruction if the first value is less than the second value.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Blt_S">
        <documentation>
            Transfers control to a target instruction (short form) if the first value is less than the second value.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Blt_Un">
        <documentation>
            Transfers control to a target instruction if the first value is less than the second value, when comparing unsigned integer values or unordered float values.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Blt_Un_S">
        <documentation>
            Transfers control to a target instruction (short form) if the first value is less than the second value, when comparing unsigned integer values or unordered float values.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Bne_Un">
        <documentation>
            Transfers control to a target instruction when two unsigned integer values or unordered float values are not equal.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Bne_Un_S">
        <documentation>
            Transfers control to a target instruction (short form) when two unsigned integer values or unordered float values are not equal.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Box">
        <documentation>
            Converts a value type to an object reference (type O).
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Br">
        <documentation>
            Unconditionally transfers control to a target instruction.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Br_S">
        <documentation>
            Unconditionally transfers control to a target instruction (short form).
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Break">
        <documentation>
            Signals the Common Language Infrastructure (CLI) to inform the debugger that a break point has been tripped.
        </documentation>
    </opcode>
    <opcode name="Brfalse">
        <documentation>
            Transfers control to a target instruction if value is false, a null reference (Nothing in Visual Basic), or zero.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Brfalse_S">
        <documentation>
            Transfers control to a target instruction if value is false, a null reference, or zero.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Brtrue">
        <documentation>
            Transfers control to a target instruction if value is true, not null, or non-zero.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Brtrue_S">
        <documentation>
            Transfers control to a target instruction (short form) if value is true, not null, or non-zero.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Call">
        <documentation>
            <![CDATA[Calls the method indicated by the passed method descriptor.]]>
        </documentation>
        <parameter type="ctor" />
        <parameter type="method" />
    </opcode>
    <!-- call is implemented explicitly -->
    <!-- calli is implemented explicitly -->
    <!-- callvirt is implemented explicitly -->
    <opcode name="Castclass">


        <documentation>
            Attempts to cast an object passed by reference to the specified class.
        </documentation>


        <parameter type="type" />


    </opcode>
    <opcode name="Ceq">
        <documentation>
            Compares two values. If they are equal, the integer value 1 (int32) is pushed onto the evaluation stack; otherwise 0 (int32) is pushed onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Cgt">
        <documentation>
            Compares two values. If the first value is greater than the second, the integer value 1 (int32) is pushed onto the evaluation stack; otherwise 0 (int32) is pushed onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Cgt_Un">
        <documentation>
            Compares two unsigned or unordered values. If the first value is greater than the second, the integer value 1 (int32) is pushed onto the evaluation stack; otherwise 0 (int32) is pushed onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Ckfinite">
        <documentation>
            Throws ArithmeticException if value is not a finite number.
        </documentation>
    </opcode>
    <opcode name="Clt">
        <documentation>
            Compares two values. If the first value is less than the second, the integer value 1 (int32) is pushed onto the evaluation stack; otherwise 0 (int32) is pushed onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Clt_Un">
        <documentation>
            Compares the unsigned or unordered values value1 and value2. If value1 is less than value2, then the integer value 1 (int32) is pushed onto the evaluation stack; otherwise 0 (int32) is pushed onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Constrained">
        <documentation>
            Constrains the type on which a virtual method call is made.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Conv_I">
        <documentation>
            Converts the value on top of the evaluation stack to native int.
        </documentation>
    </opcode>
    <opcode name="Conv_I1">
        <documentation>
            Converts the value on top of the evaluation stack to int8, then extends (pads) it to int32.
        </documentation>
    </opcode>
    <opcode name="Conv_I2">
        <documentation>
            Converts the value on top of the evaluation stack to int16, then extends (pads) it to int32.
        </documentation>
    </opcode>
    <opcode name="Conv_I4">
        <documentation>
            Converts the value on top of the evaluation stack to int32.
        </documentation>
    </opcode>
    <opcode name="Conv_I8">
        <documentation>
            Converts the value on top of the evaluation stack to int64.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_I">
        <documentation>
            Converts the signed value on top of the evaluation stack to signed native int, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_I_Un">
        <documentation>
            Converts the unsigned value on top of the evaluation stack to signed native int, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_I1">
        <documentation>
            Converts the signed value on top of the evaluation stack to signed int8 and extends it to int32, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_I1_Un">
        <documentation>
            Converts the unsigned value on top of the evaluation stack to signed int8 and extends it to int32, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_I2">
        <documentation>
            Converts the signed value on top of the evaluation stack to signed int16 and extending it to int32, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_I2_Un">
        <documentation>
            Converts the unsigned value on top of the evaluation stack to signed int16 and extends it to int32, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_I4">
        <documentation>
            Converts the signed value on top of the evaluation stack to signed int32, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_I4_Un">
        <documentation>
            Converts the unsigned value on top of the evaluation stack to signed int32, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_I8">
        <documentation>
            Converts the signed value on top of the evaluation stack to signed int64, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_I8_Un">
        <documentation>
            Converts the unsigned value on top of the evaluation stack to signed int64, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_U">
        <documentation>
            Converts the signed value on top of the evaluation stack to unsigned native int, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_U_Un">
        <documentation>
            Converts the unsigned value on top of the evaluation stack to unsigned native int, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_U1">
        <documentation>
            Converts the signed value on top of the evaluation stack to unsigned int8 and extends it to int32, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_U1_Un">
        <documentation>
            Converts the unsigned value on top of the evaluation stack to unsigned int8 and extends it to int32, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_U2">
        <documentation>
            Converts the signed value on top of the evaluation stack to unsigned int16 and extends it to int32, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_U2_Un">
        <documentation>
            Converts the unsigned value on top of the evaluation stack to unsigned int16 and extends it to int32, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_U4">
        <documentation>
            Converts the signed value on top of the evaluation stack to unsigned int32, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_U4_Un">
        <documentation>
            Converts the unsigned value on top of the evaluation stack to unsigned int32, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_U8">
        <documentation>
            Converts the signed value on top of the evaluation stack to unsigned int64, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_Ovf_U8_Un">
        <documentation>
            Converts the unsigned value on top of the evaluation stack to unsigned int64, throwing OverflowException on overflow.
        </documentation>
    </opcode>
    <opcode name="Conv_R_Un">
        <documentation>
            Converts the unsigned integer value on top of the evaluation stack to float32.
        </documentation>
    </opcode>
    <opcode name="Conv_R4">
        <documentation>
            Converts the value on top of the evaluation stack to float32.
        </documentation>
    </opcode>
    <opcode name="Conv_R8">
        <documentation>
            Converts the value on top of the evaluation stack to float64.
        </documentation>
    </opcode>
    <opcode name="Conv_U">
        <documentation>
            Converts the value on top of the evaluation stack to unsigned native int, and extends it to native int.
        </documentation>
    </opcode>
    <opcode name="Conv_U1">
        <documentation>
            Converts the value on top of the evaluation stack to unsigned int8, and extends it to int32.
        </documentation>
    </opcode>
    <opcode name="Conv_U2">
        <documentation>
            Converts the value on top of the evaluation stack to unsigned int16, and extends it to int32.
        </documentation>
    </opcode>
    <opcode name="Conv_U4">
        <documentation>
            Converts the value on top of the evaluation stack to unsigned int32, and extends it to int32.
        </documentation>
    </opcode>
    <opcode name="Conv_U8">
        <documentation>
            Converts the value on top of the evaluation stack to unsigned int64, and extends it to int64.
        </documentation>
    </opcode>
    <opcode name="Cpblk">
        <documentation>
            Copies a specified number bytes from a source address to a destination address.
        </documentation>
    </opcode>
    <opcode name="Cpobj">
        <documentation>
            Copies the value type located at the address of an object (type &amp;, * or native int) to the address of the destination object (type &amp;, * or native int).
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Div">
        <documentation>
            Divides two values and pushes the result as a floating-point (type F) or quotient (type int32) onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Div_Un">
        <documentation>
            Divides two unsigned integer values and pushes the result (int32) onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Dup">
        <documentation>
            Copies the current topmost value on the evaluation stack, and then pushes the copy onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Endfilter">
        <documentation>
            Transfers control from the filter clause of an exception back to the Common Language Infrastructure (CLI) exception handler.
        </documentation>
    </opcode>
    <opcode name="Endfinally">
        <documentation>
            Transfers control from the fault or finally clause of an exception block back to the Common Language Infrastructure (CLI) exception handler.
        </documentation>
    </opcode>
    <opcode name="Initblk">
        <documentation>
            Initializes a specified block of memory at a specific address to a given size and initial value.
        </documentation>
    </opcode>
    <opcode name="Initobj">
        <documentation>
            Initializes each field of the value type at a specified address to a null reference or a 0 of the appropriate primitive type.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Isinst">
        <documentation>
            Tests whether an object reference (type O) is an instance of a particular class.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Jmp">
        <documentation>
            Exits current method and jumps to specified method.
        </documentation>
        <parameter type="method" />
    </opcode>
    <opcode name="Ldarg">
        <documentation>
            Loads an argument (referenced by a specified index value) onto the stack.
        </documentation>
        <parameter type="index" />
    </opcode>
    <opcode name="Ldarg_0">
        <documentation>
            Loads the argument at index 0 onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Ldarg_1">
        <documentation>
            Loads the argument at index 1 onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Ldarg_2">
        <documentation>
            Loads the argument at index 2 onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Ldarg_3">
        <documentation>
            Loads the argument at index 3 onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Ldarg_S">
        <documentation>
            Loads the argument (referenced by a specified short form index) onto the evaluation stack.
        </documentation>
        <parameter type="byte" name="index" />
    </opcode>
    <opcode name="Ldarga">
        <documentation>
            Load an argument address onto the evaluation stack.
        </documentation>
        <parameter type="index" />
    </opcode>
    <opcode name="Ldarga_S">
        <documentation>
            Load an argument address, in short form, onto the evaluation stack.
        </documentation>
        <parameter type="byte" name="index" />
    </opcode>
    <opcode name="Ldc_I4">
        <documentation>
            Pushes a supplied value of type int32 onto the evaluation stack as an int32.
        </documentation>
        <parameter type="int" />
    </opcode>
    <opcode name="Ldc_I4_0">
        <documentation>
            Pushes the integer value of 0 onto the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldc_I4_1">
        <documentation>
            Pushes the integer value of 1 onto the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldc_I4_2">
        <documentation>
            Pushes the integer value of 2 onto the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldc_I4_3">
        <documentation>
            Pushes the integer value of 3 onto the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldc_I4_4">
        <documentation>
            Pushes the integer value of 4 onto the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldc_I4_5">
        <documentation>
            Pushes the integer value of 5 onto the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldc_I4_6">
        <documentation>
            Pushes the integer value of 6 onto the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldc_I4_7">
        <documentation>
            Pushes the integer value of 7 onto the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldc_I4_8">
        <documentation>
            Pushes the integer value of 8 onto the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldc_I4_M1">
        <documentation>
            Pushes the integer value of -1 onto the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldc_I4_S">
        <documentation>
            Pushes the supplied int8 value onto the evaluation stack as an int32, short form.
        </documentation>
        <parameter type="byte" />
    </opcode>
    <opcode name="Ldc_I8">
        <documentation>
            Pushes a supplied value of type int64 onto the evaluation stack as an int64.
        </documentation>
        <parameter type="long" />
    </opcode>
    <opcode name="Ldc_R4">
        <documentation>
            Pushes a supplied value of type float32 onto the evaluation stack as type F (float).
        </documentation>
        <parameter type="single" />
    </opcode>
    <opcode name="Ldc_R8">
        <documentation>
            Pushes a supplied value of type float64 onto the evaluation stack as type F (float).
        </documentation>
        <parameter type="double" />
    </opcode>
    <opcode name="Ldelem">
        <documentation>
            Loads the element at a specified array index onto the top of the evaluation stack as the type specified in the instruction.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Ldelem_I">
        <documentation>
            Loads the element with type native int at a specified array index onto the top of the evaluation stack as a native int.
        </documentation>
    </opcode>
    <opcode name="Ldelem_I1">
        <documentation>
            Loads the element with type int8 at a specified array index onto the top of the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldelem_I2">
        <documentation>
            Loads the element with type int16 at a specified array index onto the top of the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldelem_I4">
        <documentation>
            Loads the element with type int32 at a specified array index onto the top of the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldelem_I8">
        <documentation>
            Loads the element with type int64 at a specified array index onto the top of the evaluation stack as an int64.
        </documentation>
    </opcode>
    <opcode name="Ldelem_R4">
        <documentation>
            Loads the element with type float32 at a specified array index onto the top of the evaluation stack as type F (float).
        </documentation>
    </opcode>
    <opcode name="Ldelem_R8">
        <documentation>
            Loads the element with type float64 at a specified array index onto the top of the evaluation stack as type F (float).
        </documentation>
    </opcode>
    <opcode name="Ldelem_Ref">
        <documentation>
            Loads the element containing an object reference at a specified array index onto the top of the evaluation stack as type O (object reference).
        </documentation>
    </opcode>
    <opcode name="Ldelem_U1">
        <documentation>
            Loads the element with type unsigned int8 at a specified array index onto the top of the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldelem_U2">
        <documentation>
            Loads the element with type unsigned int16 at a specified array index onto the top of the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldelem_U4">
        <documentation>
            Loads the element with type unsigned int32 at a specified array index onto the top of the evaluation stack as an int32.
        </documentation>
    </opcode>
    <opcode name="Ldelema">
        <documentation>
            Loads the address of the array element at a specified array index onto the top of the evaluation stack as type &amp; (managed pointer).
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Ldfld">
        <documentation>
            Finds the value of a field in the object whose reference is currently on the evaluation stack.
        </documentation>
        <parameter type="field" />
    </opcode>
    <opcode name="Ldflda">
        <documentation>
            Finds the address of a field in the object whose reference is currently on the evaluation stack.
        </documentation>
        <parameter type="field" />
    </opcode>
    <opcode name="Ldftn">
        <documentation>
            Pushes an unmanaged pointer (type native int) to the native code implementing a specific method onto the evaluation stack.
        </documentation>
        <parameter type="method" />
    </opcode>
    <opcode name="Ldind_I">
        <documentation>
            Loads a value of type native int as a native int onto the evaluation stack indirectly.
        </documentation>
    </opcode>
    <opcode name="Ldind_I1">
        <documentation>
            Loads a value of type int8 as an int32 onto the evaluation stack indirectly.
        </documentation>
    </opcode>
    <opcode name="Ldind_I2">
        <documentation>
            Loads a value of type int16 as an int32 onto the evaluation stack indirectly.
        </documentation>
    </opcode>
    <opcode name="Ldind_I4">
        <documentation>
            Loads a value of type int32 as an int32 onto the evaluation stack indirectly.
        </documentation>
    </opcode>
    <opcode name="Ldind_I8">
        <documentation>
            Loads a value of type int64 as an int64 onto the evaluation stack indirectly.
        </documentation>
    </opcode>
    <opcode name="Ldind_R4">
        <documentation>
            Loads a value of type float32 as a type F (float) onto the evaluation stack indirectly.
        </documentation>
    </opcode>
    <opcode name="Ldind_R8">
        <documentation>
            Loads a value of type float64 as a type F (float) onto the evaluation stack indirectly.
        </documentation>
    </opcode>
    <opcode name="Ldind_Ref">
        <documentation>
            Loads an object reference as a type O (object reference) onto the evaluation stack indirectly.
        </documentation>
    </opcode>
    <opcode name="Ldind_U1">
        <documentation>
            Loads a value of type unsigned int8 as an int32 onto the evaluation stack indirectly.
        </documentation>
    </opcode>
    <opcode name="Ldind_U2">
        <documentation>
            Loads a value of type unsigned int16 as an int32 onto the evaluation stack indirectly.
        </documentation>
    </opcode>
    <opcode name="Ldind_U4">
        <documentation>
            Loads a value of type unsigned int32 as an int32 onto the evaluation stack indirectly.
        </documentation>
    </opcode>
    <opcode name="Ldlen">
        <documentation>
            Pushes the number of elements of a zero-based, one-dimensional array onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Ldloc">
        <documentation>
            Loads the local variable at a specific index onto the evaluation stack.
        </documentation>
        <parameter type="local" />
        <parameter type="index" />
    </opcode>
    <opcode name="Ldloc_0">
        <documentation>
            Loads the local variable at index 0 onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Ldloc_1">
        <documentation>
            Loads the local variable at index 1 onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Ldloc_2">
        <documentation>
            Loads the local variable at index 2 onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Ldloc_3">
        <documentation>
            Loads the local variable at index 3 onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Ldloc_S">
        <documentation>
            Loads the local variable at a specific index onto the evaluation stack, short form.
        </documentation>
        <parameter type="byte" name="index" />
        <parameter type="local" />
    </opcode>
    <opcode name="Ldloca">
        <documentation>
            Loads the address of the local variable at a specific index onto the evaluation stack.
        </documentation>
        <parameter type="index" />
    </opcode>
    <opcode name="Ldloca_S">
        <documentation>
            Loads the address of the local variable at a specific index onto the evaluation stack, short form.
        </documentation>
        <parameter type="byte" name="index" />
    </opcode>
    <opcode name="Ldnull">
        <documentation>
            Pushes a null reference (type O) onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Ldobj">
        <documentation>
            Copies the value type object pointed to by an address to the top of the evaluation stack.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Ldsfld">
        <documentation>
            Pushes the value of a static field onto the evaluation stack.
        </documentation>
        <parameter type="field" />
    </opcode>
    <opcode name="Ldsflda">
        <documentation>
            Pushes the address of a static field onto the evaluation stack.
        </documentation>
        <parameter type="field" />
    </opcode>
    <opcode name="Ldstr">
        <documentation>
            Pushes a new object reference to a string literal stored in the metadata.
        </documentation>
        <parameter type="string" />
    </opcode>
    <opcode name="Ldtoken">
        <documentation>
            Converts a metadata token to its runtime representation, pushing it onto the evaluation stack.
        </documentation>
        <parameter type="method" />
        <parameter type="field" />
        <parameter type="type" />
    </opcode>
    <opcode name="Ldvirtftn">
        <documentation>
            Pushes an unmanaged pointer (type native int) to the native code implementing a particular virtual method associated with a specified object onto the evaluation stack.
        </documentation>
        <parameter type="method" />
    </opcode>
    <opcode name="Leave">
        <documentation>
            Exits a protected region of code, unconditionally transferring control to a specific target instruction.
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Leave_S">
        <documentation>
            Exits a protected region of code, unconditionally transferring control to a target instruction (short form).
        </documentation>
        <parameter type="label" />
    </opcode>
    <opcode name="Localloc">
        <documentation>
            Allocates a certain number of bytes from the local dynamic memory pool and pushes the address (a transient pointer, type *) of the first allocated byte onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Mkrefany">
        <documentation>
            Pushes a typed reference to an instance of a specific type onto the evaluation stack.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Mul">
        <documentation>
            Multiplies two values and pushes the result on the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Mul_Ovf">
        <documentation>
            Multiplies two integer values, performs an overflow check, and pushes the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Mul_Ovf_Un">
        <documentation>
            Multiplies two unsigned integer values, performs an overflow check, and pushes the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Neg">
        <documentation>
            Negates a value and pushes the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Newarr">
        <documentation>
            Pushes an object reference to a new zero-based, one-dimensional array whose elements are of a specific type onto the evaluation stack.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Newobj">
        <documentation>
            Creates a new object or a new instance of a value type, pushing an object reference (type O) onto the evaluation stack.
        </documentation>
        <parameter type="ctor" />
    </opcode>
    <opcode name="Nop">
        <documentation>
            Fills space if opcodes are patched. No meaningful operation is performed although a processing cycle can be consumed.
        </documentation>
    </opcode>
    <opcode name="Not">
        <documentation>
            Computes the bitwise complement of the integer value on top of the stack and pushes the result onto the evaluation stack as the same type.
        </documentation>
    </opcode>
    <opcode name="Or">
        <documentation>
            Compute the bitwise complement of the two integer values on top of the stack and pushes the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Pop">
        <documentation>
            Removes the value currently on top of the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Readonly">
        <documentation>
            Specifies that the subsequent array address operation performs no type check at run time, and that it returns a managed pointer whose mutability is restricted.
        </documentation>
    </opcode>
    <opcode name="Refanytype">
        <documentation>
            Retrieves the type token embedded in a typed reference.
        </documentation>
    </opcode>
    <opcode name="Refanyval">
        <documentation>
            Retrieves the address (type &amp;) embedded in a typed reference.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Rem">
        <documentation>
            Divides two values and pushes the remainder onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Rem_Un">
        <documentation>
            Divides two unsigned values and pushes the remainder onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Ret">
        <documentation>
            Returns from the current method, pushing a return value (if present) from the callee's evaluation stack onto the caller's evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Rethrow">
        <documentation>
            Rethrows the current exception.
        </documentation>
    </opcode>
    <opcode name="Shl">
        <documentation>
            Shifts an integer value to the left (in zeroes) by a specified number of bits, pushing the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Shr">
        <documentation>
            Shifts an integer value (in sign) to the right by a specified number of bits, pushing the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Shr_Un">
        <documentation>
            Shifts an unsigned integer value (in zeroes) to the right by a specified number of bits, pushing the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Sizeof">
        <documentation>
            Pushes the size, in bytes, of a supplied value type onto the evaluation stack.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Starg">
        <documentation>
            Stores the value on top of the evaluation stack in the argument slot at a specified index.
        </documentation>
        <parameter type="index" />
    </opcode>
    <opcode name="Starg_S">
        <documentation>
            Stores the value on top of the evaluation stack in the argument slot at a specified index, short form.
        </documentation>
        <parameter type="byte" name="index" />
    </opcode>
    <opcode name="Stelem">
        <documentation>
            Replaces the array element at a given index with the value on the evaluation stack, whose type is specified in the instruction.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Stelem_I">
        <documentation>
            Replaces the array element at a given index with the native int value on the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Stelem_I1">
        <documentation>
            Replaces the array element at a given index with the int8 value on the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Stelem_I2">
        <documentation>
            Replaces the array element at a given index with the int16 value on the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Stelem_I4">
        <documentation>
            Replaces the array element at a given index with the int32 value on the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Stelem_I8">
        <documentation>
            Replaces the array element at a given index with the int64 value on the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Stelem_R4">
        <documentation>
            Replaces the array element at a given index with the float32 value on the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Stelem_R8">
        <documentation>
            Replaces the array element at a given index with the float64 value on the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Stelem_Ref">
        <documentation>
            Replaces the array element at a given index with the object ref value (type O) on the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Stfld">
        <documentation>
            Replaces the value stored in the field of an object reference or pointer with a new value.
        </documentation>
        <parameter type="field" />
    </opcode>
    <opcode name="Stind_I">
        <documentation>
            Stores a value of type native int at a supplied address.
        </documentation>
    </opcode>
    <opcode name="Stind_I1">
        <documentation>
            Stores a value of type int8 at a supplied address.
        </documentation>
    </opcode>
    <opcode name="Stind_I2">
        <documentation>
            Stores a value of type int16 at a supplied address.
        </documentation>
    </opcode>
    <opcode name="Stind_I4">
        <documentation>
            Stores a value of type int32 at a supplied address.
        </documentation>
    </opcode>
    <opcode name="Stind_I8">
        <documentation>
            Stores a value of type int64 at a supplied address.
        </documentation>
    </opcode>
    <opcode name="Stind_R4">
        <documentation>
            Stores a value of type float32 at a supplied address.
        </documentation>
    </opcode>
    <opcode name="Stind_R8">
        <documentation>
            Stores a value of type float64 at a supplied address.
        </documentation>
    </opcode>
    <opcode name="Stind_Ref">
        <documentation>
            Stores a object reference value at a supplied address.
        </documentation>
    </opcode>
    <opcode name="Stloc">
        <documentation>
            Pops the current value from the top of the evaluation stack and stores it in a the local variable list at a specified index.
        </documentation>
        <parameter type="index" />
        <parameter type="local" />
    </opcode>
    <opcode name="Stloc_0">
        <documentation>
            Pops the current value from the top of the evaluation stack and stores it in a the local variable list at index 0.
        </documentation>
    </opcode>
    <opcode name="Stloc_1">
        <documentation>
            Pops the current value from the top of the evaluation stack and stores it in a the local variable list at index 1.
        </documentation>
    </opcode>
    <opcode name="Stloc_2">
        <documentation>
            Pops the current value from the top of the evaluation stack and stores it in a the local variable list at index 2.
        </documentation>
    </opcode>
    <opcode name="Stloc_3">
        <documentation>
            Pops the current value from the top of the evaluation stack and stores it in a the local variable list at index 3.
        </documentation>
    </opcode>
    <opcode name="Stloc_S">
        <documentation>
            Pops the current value from the top of the evaluation stack and stores it in a the local variable list at index (short form).
        </documentation>
        <parameter type="byte" name="index" />
        <parameter type="local" />
    </opcode>
    <opcode name="Stobj">
        <documentation>
            Copies a value of a specified type from the evaluation stack into a supplied memory address.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Stsfld">
        <documentation>
            Replaces the value of a static field with a value from the evaluation stack.
        </documentation>
        <parameter type="field" />
    </opcode>
    <opcode name="Sub">
        <documentation>
            Subtracts one value from another and pushes the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Sub_Ovf">
        <documentation>
            Subtracts one integer value from another, performs an overflow check, and pushes the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Sub_Ovf_Un">
        <documentation>
            Subtracts one unsigned integer value from another, performs an overflow check, and pushes the result onto the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Switch">
        <documentation>
            Implements a jump table.
        </documentation>
        <parameter type="labels" />
    </opcode>
    <opcode name="Tailcall">
        <documentation>
            Performs a postfixed method call instruction such that the current method's stack frame is removed before the actual call instruction is executed.
        </documentation>
    </opcode>
    <opcode name="Throw">
        <documentation>
            Throws the exception object currently on the evaluation stack.
        </documentation>
    </opcode>
    <opcode name="Unaligned">
        <documentation>
            Indicates that an address currently atop the evaluation stack might not be aligned to the natural size of the immediately following ldind, stind, ldfld, stfld, ldobj, stobj, initblk, or cpblk instruction.
        </documentation>
        <parameter type="label" />
        <parameter type="long" />
    </opcode>
    <opcode name="Unbox">
        <documentation>
            Converts the boxed representation of a value type to its unboxed form.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Unbox_Any">
        <documentation>
            Converts the boxed representation of a type specified in the instruction to its unboxed form.
        </documentation>
        <parameter type="type" />
    </opcode>
    <opcode name="Volatile">
        <documentation>
            Specifies that an address currently atop the evaluation stack might be volatile, and the results of reading that location cannot be cached or that multiple stores to that location cannot be suppressed.
        </documentation>
    </opcode>
    <opcode name="Xor">
        <documentation>
            Computes the bitwise XOR of the top two values on the evaluation stack, pushing the result onto the evaluation stack.
        </documentation>
    </opcode>
</opcodes>